package class2;

/**
 * 获取数组的最大值
 * 用递归方法找一个数组中的最大值
 * 思路：
 * 1.用二分查找法，递归出数组左右的最大值，返回
 */
public class Code11_GetMax {
    public static void main(String[] args) {
        int[] arr = {3, 32, 5, 6, 3, 4, 5, 2, 6, 9, 0, 119};
        int max = getMax(arr);
        System.out.println("max = " + max);
    }

    public static int getMax(int[] arr) {
        return process(arr, 0, arr.length - 1);
    }

    public static int process(int[] arr, int L, int R) {
        if (L == R) {
            return arr[L];
        }
        int mid = L + ((R - L) >> 1);
        int leftMax = process(arr, L, mid);
        int rightMax = process(arr, mid + 1, R);
        return Math.max(leftMax, rightMax);
    }
}
